﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using L = Science.Mathematics.LinearAlgebra;

namespace Strang3Ed.Chapter02.Section6
{
    public class Example01
    {
        public Example01()
		{
		}
		private string result;
		public string Result
		{
			get{return result;}
		}
        public void Compute()
        {
            double[,] x = {{2.0,1.0,0.0},                           
                           {1.0,2.0,1.0},
                           {0.0,1.0,2.0}};

            L.Matrix A = new L.Matrix(x);

            L.FactorizationPAeqLU obj = new L.FactorizationPAeqLU(A);
            obj.Compute();

            L.Matrix L = obj.LowerTriangular;

            result += L.ToString();

            L.Matrix U = obj.UpperTriangular;

            result += U.ToString();

            L.Matrix P = L * U;

            result += P.ToString();
        }
    }
}
/*
1     0     0     
0.5     1     0     
0     0.666666666666667     1     

2     1     0     
0     1.5     1     
0     0     1.33333333333333     

2     1     0     
1     2     1     
0     1     2      
*/
